home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 1 / QRZ Ham Radio Callsign Database - December 1993.iso / arrl / faq_dsp.1 < prev    next >
Internet Message Format  |  1993-11-21  |  66KB

  1. From: phil@ohm.berkeley.edu (Phil Lapsley)
  2. Newsgroups: comp.dsp,comp.answers,news.answers
  3. Subject: comp.dsp FAQ [1 of 4]
  4. Summary: This is a periodic posting to comp.dsp that gives information
  5. Date: 27 Sep 93 03:18:43 GMT
  6. Followup-To: poster
  7. Organization: University of California at Berkeley
  8. Lines: 1518
  9.  
  10. Archive-name: dsp-faq/part1
  11. Last-modified: Sun May 30 1993
  12. Version: 1.1
  13.  
  14. Welcome to the comp.dsp FAQ.  We are seeking information on all topics,
  15. from the best layout (e.g., should chips and prototype boards be
  16. another FAQ?) to a good annotated list of DSP articles and reference
  17. books.  Please email your suggestions to comp-dsp-faq@ohm.Berkeley.EDU.
  18. Meta-comments are all in curly braces, {like this}.  Acknowledgements to
  19. people responsible for articles and/or bits of information are in
  20. square brackets, [like so].
  21.  
  22. You can ftp the very latest version of this FAQ from: evans.ee.adfa.oz.au
  23. (131.236.30.24) in pub/dsp/dsp-faq.help, or from copernicus.Berkeley.EDU
  24. in dsp-faq.help.*.
  25.  
  26. In version 1.1 of the FAQ, we've included a list of DSP-related FTP sites
  27. at the end of the FAQ (section 7).  Be sure to check this if you're looking
  28. for an FTP site, as it may have more up-to-date information on than the text
  29. in the body the FAQ.
  30.  
  31. We are most grateful to the following contributors who helped out with
  32. this version of the FAQ:
  33.  
  34. Harry Bates             hjb@transtech.com
  35. Chuck Corley            chuckc@hpnmdlc0.sr.hp.com
  36. Jutta Degener           jutta@cs.tu-berlin.de
  37. John Edwards            johned@cix.compulink.co.uk
  38. Cole Erskine            cole@analogical.com
  39. Robert Gammon           rgammon@rgam.sc.ti.com
  40. Alan Kamas              aok@ohm.berkeley.edu
  41. Stephen Moshier         moshier@world.std.com
  42. Ted Rossin              rossin@hpfcrd.fc.hp.com
  43. Paul Rubin              phr@america.telebit.com
  44. Witold Waldman          witold@hotblk.aed.dsto.gov.au
  45.  
  46. and the following folks who helped out with previous versions:
  47.  
  48. William Alves           alves@calvin.usc.edu
  49. Harry Bates             transtech!hjb@tc.cornell.edu
  50. Annard Brouwer          annard@stack.urc.tue.nl
  51. Joe Campbell            jpcampb@afterlife.ncsc.mil
  52. Tim Channon             tchannon@black.demon.co.uk
  53. Steve Clift             clift@ml.csiro.au
  54. Joel Coltoff            joel@wmi.com
  55. Chuck Corley            chuckc@hpnmdlc0.sr.hp.com
  56. Jutta Degener           jutta@cs.tu-berlin.de
  57. Malachy Devlin          madmal@spd.eee.strathclyde.ac.uk
  58. John Edwards            johned@cix.compulink.co.uk
  59. Kenneth Ekman           y88kenek@und.ida.liu.se
  60. Brian Evans             evans@markov.eedsp.gatech.edu
  61. John Fisher             johnf@dsp.sps.mot.com
  62. Dan Frankowski          dfrankow@cs.umn.edu
  63. Robert Gammon           5692330@mcimail.com
  64. Kevin Gardner           gardner@zinc.med.yale.edu
  65. Maurice Givens          maury@tellabs.com
  66. Ed Hall                 edhall@rand.org
  67. Vince Herried           vjh21@cas.org
  68. Eric Jacobsen           ericj@hwcae.honeywell.com
  69. Pete Janzow             pjanzow@prenhall.com
  70. Quinn Jensen            jensenq@qcj.icon.com
  71. Richard Kim             richard@math.mit.edu
  72. Gints Klimanis          gints@roadkill.esd.sgi.com
  73. Greg Koker              dsp_applications@analog.com
  74. Juhana Kouhia           jk87377@cc.tut.fi
  75. John Lazzaro            lazzaro@boom.CS.Berkeley.EDU 
  76. Sergio Liberman         sergio@msil.sps.mot.com
  77. Stan McClellan          mcclella@ee.tamu.edu
  78. Renzo Mercanzin         aire@sabrina.dei.unipd.it
  79. Phillip Musumeci        phillip@ee.adfa.oz.au
  80. Bill Ralston            wtr@mitre.org
  81. C.S. Ramalingam         ramli@mizar.ele.uri.edu
  82. Tony Richardson         amr@mpl.ucsd.edu
  83. Ted Rossin              rossin@hpfcrd.fc.hp.com
  84. Paul Russell            paulr@syma.sussex.ac.uk
  85. Stanley Sasaki          stans@tekig7.pen.tek.com
  86. Bill Schottstaedt       bil@ccrma.stanford.edu
  87. Paul Simoneau           pas1@kepler.unh.edu
  88. Greg Smart              rcogs@citri.edu.au
  89. Larry Stewart           stewart@crl.dec.com
  90. Andrew Ukrainec         ukrainec@nimios.Eng.McMaster.CA
  91. Witold Waldman          witold@hotblk.aed.dsto.gov.au
  92. Phil Woodland           pcw@eng.cam.ac.uk
  93. Ronnin Yee              ronnin.yee@analog.com
  94.  
  95. Get your name here - contribute something!  (If you don't want your
  96. email address listed in your contribution, please indicate so.)
  97.  
  98. Phil Lapsley       phil@ohm.Berkeley.EDU  (FAQ maintainer)
  99. Bradley Hards      hards4@ee.adfa.oz.au   (assistant/original FAQ maintainer)
  100.  
  101. =============================================================================
  102.  
  103. 0. What is comp.dsp?
  104.  
  105. 1. General DSP.
  106.    1.1 DSP book and article references.
  107.        1.1.1 Bibles of DSP.
  108.        1.1.2 Adaptive signal processing.
  109.        1.1.3 Array signal processing.
  110.        1.1.4 Windowing.
  111.        1.1.5 Digital audio effects processing.
  112.    1.2 Where can I get free software for general DSP?
  113.        1.2.1 What is Gabriel?  Where can I get it?
  114.        1.2.2 What is Ptolemy?  Where can I get it?
  115.        1.2.3 What is Khoros?  Where can I get it?
  116.        1.2.4 What are DSP Tutorials?  Where can I get them?
  117.        1.2.5 What are some DSP extensions to MATLAB?  Where can I get them?
  118.        1.2.6 What is the Signal Processing Package for Mathematica?
  119.              Where can I get it?
  120.        1.2.7 What is the Controls System Package for Mathematica?
  121.              Where can I get it?
  122.        1.2.8 What are some other DSP Notebooks for Mathematica?
  123.        1.2.9 What is the Linear Systems Toolbox for Maple?  Where can I get it?
  124.        1.2.10 Where can I get text to speech conversion software?
  125.        1.2.11 Where can I get filter design software?
  126.        1.2.12 What is SigLib? Where can I get it?
  127.        1.2.13 What is the AudioFile System?  Where can I get it?
  128.  
  129. 2. Algorithms and standards.
  130.    2.1 Where can I get some algorithms for DSP?
  131.    2.2 What is CELP and LPC?  Where can I get source for them?
  132.    2.3 What is ADPCM?  Where can I get source for it?
  133.    2.4 What is GSM?  Where can I get source for it?
  134.    2.5 How does pitch perception work, and how do I implement it?
  135.    2.6 What standards exist for digital audio?  What is AES/EBU?
  136.        What is S/PDIF?
  137.    2.7 What is mu-law encoding?  Where can I get source for it?
  138.    2.8 How can I do CD <-> DAT sample rate conversion?
  139.  
  140. 3. Programmable DSP chips and their software.
  141.    3.1 What are some current, popular programmable DSP chips?
  142.    3.2 Software for Motorola DSPs.
  143.         3.2.1 Where can I get a free assembler for the Motorola DSP56000?
  144.         3.2.2 Where can I get a free C compiler for the Motorola DSP56000?
  145.         3.2.3 Where can I get algorithms or libraries for Motorola DSPs?
  146.               What is the number for the Motorola DSP BBS?
  147.         3.2.4 Where can I get NeXT-compatible Motorola DSP56001 code?
  148.    3.3 Software for Texas Instruments DSPs.
  149.         3.3.1 Where can I get algorithms or libraries for TI DSPs?
  150.               What is the number for the TI DSP BBS?
  151.         3.3.2 Where can I get a free C compiler for the TMS320C30?
  152.         3.3.2 Where can I get a free assembler for the TMS320C30?
  153.    3.4 Software for Analog Devices DSPs.
  154.         3.4.1 Where can I get algorithms or libraries for AD DSPs?
  155.               What is the number for the Analog Devices DSP BBS?
  156.  
  157. 4. Hardware.
  158.     4.1 DSP development boards.
  159.         4.1.1 IBM PC.
  160.         4.1.2 Mac Nubus.
  161.         4.1.3 SBus.
  162.         4.1.4 VMEbus.
  163.         4.1.5 Next bus.
  164.         4.1.6 Amiga bus.
  165.         4.1.7 SCSI bus.
  166.         4.1.8 TIM-40.
  167.         4.1.9 Standalone.
  168.     4.2 Who makes AES/EBU chips?
  169.  
  170. 5. Operating Systems.
  171.  
  172. 6. List of manufacturers, addresses, and telephone numbers.
  173.  
  174. 7. Summary of FTP sites.
  175.  
  176. To search for a particular question within a text editor, look for the
  177. pattern "Q#.##:", e.g., "Q1.2:".
  178.  
  179. =============================================================================
  180.  
  181. Q0: What is comp.dsp?
  182.  
  183. Comp.dsp is a worldwide UseNet news group that is used to discuss
  184. various aspects of digital signal processing.  It is unmoderated,
  185. though we try to keep the signal to noise ratio up :-).  If you need to
  186. ask a question that isn't in the FAQ, and can't figure out how to post,
  187. consult news.newusers.questions.  Other relevant news groups are
  188. comp.compression, comp.speech, and sci.image.processing.
  189.  
  190. =============================================================================
  191.  
  192. 1. General DSP.
  193.  
  194. This section deals with general DSP, that is, DSP books, algorithms,
  195. and packages that are not related to a particular manufacturer's DSP chip.
  196.  
  197. =========================================================================
  198.  
  199. Q1.1: Summary of DSP books and significant research articles.
  200.  
  201. Q1.1.1: Bibles of DSP.
  202.  
  203. A.V. Oppenheim and R.W. Schafer, "Digital Signal Processing",
  204. Prentice-Hall, Inc., Englewood Cliffs, N.J., 1975.
  205.  
  206. A.V. Oppenheim and R.W. Schafer, "Discrete-Time Signal Processing"
  207. Prentice Hall, Englewood Cliffs, New Jersey 07632, 1989. ISBN 0-13-216292-X
  208. This is an updated version of the original, with some old material deleted
  209. and lots of new material added.
  210.  
  211. L.R. Rabiner & R.W. Schafer, "Digital Processing of Speech Signals",
  212. Prentice Hall, 1978, ISBN 0-13-213603-1.
  213.  
  214. R. E. Crochiere & L. R. Rabiner, "Multirate Digital Signal Processing",
  215. Prentice-Hall, 1983, ISBN 0136051626.
  216. This book is the only real reference for filter banks and multirate
  217. systems, as opposed to being a tutorial.
  218.  
  219. P. P. Vaidyanathan, "Multirate Systems and Filter Banks",
  220. Prentice-Hall.  911 pp.
  221.  
  222. Thomas Parsons, "Voice and Speech Processing", McGraw-Hill, 1987,
  223. ISBN 0-07-048541-0.
  224. Addresses the cocktail party effect, as well as other material.
  225. [Maurice Givens, maury@tellabs.com]
  226.  
  227. --------------------------------------------------
  228.  
  229. Q1.1.2: Adaptive signal processing.
  230.  
  231. S. Haykin, "Adaptive Filter Theory", 2nd Ed., Prentice Hall,
  232. Englewood Cliffs, NJ, 1991.
  233.  
  234. B. Widrow and S.D. Stearns, "Adaptive Signal Processing", 
  235. Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.
  236.  
  237. --------------------------------------------------
  238.  
  239. Q1.1.3: Array signal processing.
  240.  
  241. J.E. Hudson, "Adaptive Array Principles", IEE London and New York,
  242. Peter Peregrinus Ltd. Stevenage, U.K., and New York, 1981.
  243.  
  244. R.A. Monzingo and T.W. Miller, "Introduction to Adaptive Arrays"
  245. John Wiley and Sons, New York, 1980.
  246.  
  247. S. Haykin, J.H. Justice, N.L. Owsley, J.L. Yen, and A.C. Kak
  248. "Array Signal Processing", Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.
  249.  
  250. R.T. Compton, Jr., "Adaptive Antennas, Concepts and Performance",
  251. Prentice-Hall, 1988, ISBN 0-13-004151-3.
  252.  
  253. --------------------------------------------------
  254.  
  255. Q1.1.4: Windowing articles.
  256.  
  257. F. J. Harris, "On the Use of Windows for Harmonic Analysis with the DFT",
  258. IEEE Proceedings, January 1978, pp. 51-83.
  259. Perhaps the classic overview paper for discrete-time windows.  It discusses
  260. some 15 different classes of windows including their spectral responses and
  261. the reasons for their development.  [Brian Evans, evans@eedsp.gatech.edu]
  262.  
  263. Nezih C. Geckinli & Davras Yavuz, "Some Novel Windows and a Concise Tutorial
  264. Comparison of Window Families", IEEE Transactions on Acoustics, Speech,
  265. and Signal Processing, Vol. ASSP-26, No. 6, December 1978.
  266. [Bob Beauchaine, bobb@vice.ico.tek.com]
  267.  
  268. Lineu C. Barbosa, "A Maximum-Energy-Concentration Spectral Window,"
  269. IBM J. Res. Develop., Vol. 30, No. 3, May 1986, p. 321-325.
  270. An elegant method for designing a time-discrete solution for
  271. realization of a spectral window which is ideal from an energy
  272. concentration viewpoint.  This window is one that concentrates the
  273. maximum amount of energy in a specified bandwidth and hence provides
  274. optimal spectral resolution.  Unlike the Kaiser window, this window is
  275. a discrete-time realization having the same objectives as the
  276. continuous-time prolate spheroidal function; at the expense of not
  277. having a closed form solution. [Joe Campbell, jpcampb@afterlife.ncsc.mil]
  278.  
  279. --------------------------------------------------
  280.  
  281. Q1.1.5: Digital Audio Effects Processing.
  282.  
  283. Books (in no particular order, sorry):
  284.  
  285. Hal Chamberlin, Musical Applications of Microprocessors, 2nd Ed.,
  286. Hayden Book Company, 1985.
  287.  
  288. Barry Blesser and J. Kates. "Digital Processing in Audio Signals." In A. V.
  289. Oppenheim, ed. Applications of Digital Signal Processing. Englewood Cliffs, 
  290. NJ: Prentice-Hall, 1978.
  291.  
  292. Digital Signal Processing Committee of IEEE Acoustics, Speech, and Signal
  293. Processing Society, ed. Programs for Digital Signal Processing. New York:
  294. IEEE Press, 1979.
  295.  
  296. John Strawn, ed., "Digital Audio Signal Processing: An Anthology.", Los Altos,
  297. CA: W. Kaufmann, 1985.   [Contains Moorer J.A. "About This Reverb..."
  298. and contains an article which gives a code for Phase Vocoder -- great
  299. tool for EQ, for Pitchshifter and more --Juhana Kouhia]
  300.  
  301. Charles Dodge and Thomas A. Jerse. Computer Music: Synthesis, Composition,
  302. and Performance. New York: Schirmer Books, 1985.
  303.  
  304. F. Richard Moore, "Elements of Computer Music", Englewood Cliffs, NJ:
  305. Prentice-Hall, 1990.  ISBN: 0-13252-552-6 [Recommended.  --Juhana Kouhia]
  306.  
  307. Curtis Roads and John Strawn, ed., "The Foundations of Computer Music",
  308. Cambridge, MA: MIT Press, 1985.  [Contains article on analysis/synthesis
  309. by Strawn, recommended; also an another article maybe by J.A. Moorer
  310. -- Juhana Kouhia]
  311.  
  312. John Strawn, ed., "Digital Audio Signal Processing", 283 pages,
  313. $34.95, ISBN 0-86576-082-9, pub: A-R Editions.  Contents:
  314.  
  315.         1. Introduction to the mathematics of DSP (F. Richard Moore)
  316.            [Not a bad little text]
  317.  
  318.         2. Introduction to digital filter theory (Julius O. Smith)
  319.            [Not a bad little text, either]
  320.  
  321.         3. Spiral Synthesis (Tracy Lind Petersen)
  322.            [first published account of a new synthesis technique]
  323.  
  324.         4. Signal processing aspects of computer music (J. A. Moorer)
  325.            [James Moorer's classic article--discusses many synthesis
  326.            techniques.  Reverb algorithms.  More than 6 pages of refs]
  327.  
  328.         5. An introduction to the phase vocoder (J. W. Gordon, J. Strawn)
  329.            [Includes source code for a phase vocoder--a powerful method
  330.            for synthesis, pitch shifting, time scale modification, etc.]
  331.         [Comments by Quinn Jensen].
  332.            
  333. Curtis Road, ed., "Composers and the Computer", 201 pages,
  334. $27.95, ISBN 0-86576-085-3, pub: A-R Editions.
  335.  
  336. John Strawn, ed., "Digital Audio Engineering", 144 pages,
  337. $29.95, ISBN 0-86576-087-X pub: A-R Editions.
  338.  
  339. Deta S. Davis, "Computer Applications in Music: A Bibliography", 537 pages,
  340. $49.95, ISBN 0-89579-225-7, pub: A-R Editions.
  341.  
  342. Ken C. Pohlmann, "The Compact Disc:  A Handbook of Theory and Use",
  343. 288 pages, $45.95 (cloth) ISBN 0-89579-234-6, $29.95 (paper)
  344. ISBN 0-89579-228-1, pub: A-R Editions.
  345.  
  346. Forthcoming books:
  347.  
  348. Curtis Roads, "A Computer Music History:  Musical Automation 
  349. from Antiquity to the Computer Age"
  350.  
  351. Joseph Rothstein, "MIDI:  A Comprehensive Introduction"
  352.  
  353. David Cope, "Computer Analysis of Musical Style"
  354.  
  355. Dexter Morrill and Rick Taube, "A Little Book of Computer Music
  356. Instruments"
  357.  
  358. Articles:
  359.  
  360. James A. Moorer, "About This Reverberation Business", Computer Music Journal
  361. 3, 20 (1979): 13-28. (Also in Foundations of CM below).
  362. [Ok article, but you have to know basic DSP operations.  --Juhana Kouhia]
  363.  
  364. Check more articles from Journal of the Audio Engineering Society
  365. (JAES), for example more articles by Strawn.
  366.  
  367. Note: books published by A-R editions can be ordered from:
  368.  
  369.         A-R Editions
  370.         801 Deming Way
  371.         Madison, Wisconsin 53717
  372.         608-836-9000 (They accept VISA orders)
  373.  
  374. [The above is largely from Quinn Jensen, jensenq@qcj.icon.com;
  375. Juhana Kouhia, jk87377@cc.tut.fi; William Alves, alves@calvin.usc.edu;
  376. and Paul A Simoneau, pas1@kepler.unh.edu]
  377.  
  378. =========================================================================
  379.  
  380. Q1.2: Where can I get free software for general DSP?
  381.  
  382. The packages listed below are mostly for general purpose DSP, that is,
  383. DSP that is not specific to a particular programmable DSP chip.  See
  384. the later sections in the FAQ for software relevant to a particular
  385. programmable DSP chip.
  386.  
  387. According to Brian Evans: "There was an entire session on this subject
  388. [free DSP software] at ICASSP '92, chaired by Dr. Sally Wood and
  389. Dr. James McClellan.  It appears in Volume 4 of the Proceedings, pages
  390. 73-112.  There will be another such session at ICASSP '93." [Brian Evans,
  391. evans@eedsp.gatech.edu]  Much of the information below is from Brian's mail.
  392.  
  393. --------------------------------------------------
  394.  
  395. Q1.2.1: What is Gabriel?  Where can I get it?
  396.  
  397. Package: Gabriel
  398.  
  399. Description:
  400.  
  401. Gabriel was a hierarchical block diagram environment for prototyping
  402. signal processing systems on single or multiple processors.  It has
  403. been superceded by Ptolemy (see below), and is no longer available.
  404.  
  405. --------------------------------------------------
  406.  
  407. Q1.2.2: What is Ptolemy?  Where can I get it?
  408.  
  409. Package: Ptolemy
  410.  
  411. Description:
  412. Ptolemy provides a highly flexible foundation for the specification,
  413. simulation, and rapid prototyping of systems.  It is an object
  414. oriented framework within which diverse models of computation can
  415. co-exist and interact.  For example, using Ptolemy a data-flow
  416. system can be easily connected to a hardware simulator which in turn
  417. may be connected to a discrete-event system, etc.  Because of this,
  418. Ptolemy can be used to model entire systems.
  419.  
  420. In addition, Ptolemy now has code generation capabilities.  From a
  421. flow graph description, Ptolemy can generate both C code and DSP
  422. assembly code for rapid prototyping.  Note that code generation is
  423. not yet complete, and is included in the current release for
  424. demonstration purposes only.
  425.  
  426. Ptolemy has been used for a broad range of applications including
  427. signal processing, telecomunications, parallel processing, wireless
  428. communications, network design, radio astronomy, real-time systems,
  429. and hardware/software co-design.  Ptolemy has also been used as a lab
  430. for signal processing and communications courses.  Currently Ptolemy
  431. has hundreds of users in over 100 sites, both in industry and academia.
  432.  
  433. Ptolemy is available for the Sun 4 (sparc), DecStation (MIPS), and HP
  434. (HP-PA) architectures. Installing the system requires 49 Mbytes for
  435. Ptolemy (64 Mbytes after you optionally rebuild) and 16 Mbytes for the
  436. Gnu tools subset.  At least 8 Mbytes of physical memory are required.
  437.  
  438. Ptolemy has been developed at UC Berkeley over the past 3 years.
  439. Further information, including papers and the complete release
  440. notes, is available from the FTP site.
  441.  
  442. A license is no longer required to receive Ptolemy.  The source code,
  443. binaries, and documentation are available by anonymous ftp from
  444.  
  445.         ptolemy.berkeley.edu
  446.  
  447. Ftp to "ptolemy.bekeley.edu", login as "anonymous", cd "pub", get README
  448.  
  449. Contact: Alan Kamas, aok@ohm.berkeley.edu.
  450. --------------------------------------------------
  451.  
  452. Q1.2.3: What is Khoros?  Where can I get it?
  453.  
  454. Package: Khoros
  455.  
  456. Description:
  457. Block diagram simulator for image and video processing.  1-D signal processing
  458. is also supported.  See the UseNet group comp.soft-sys.khoros.
  459.  
  460. Platforms: sun 3, sun 4, others?  X windows.  Written in C.
  461.  
  462. To obtain:
  463. Anonymous ftp to pprg.eece.unm.edu, cd /pub/khoros/release, get install.ftp.
  464. --------------------------------------------------
  465.  
  466. Q1.2.4: What are DSP Tutorials?  Where can I get them?
  467.  
  468. Package: DSP Tutorials
  469.  
  470. Description: Computer aided instruction.
  471.  
  472. Platforms: suns under SunView.
  473.  
  474. Contact: Dr. Sally Wood, Electrical Engineering Department, Santa Clara
  475. University, Santa Clara, CA 95053.
  476. --------------------------------------------------
  477.  
  478. Q1.2.5: What are some DSP extensions to MATLAB?  Where can I get them?
  479.  
  480. Package: MATLAB user's group public domain extensions to MATLAB
  481.  
  482. Description:
  483.  
  484.     The MATLAB Digest is issued at irregular intervals based on the  number
  485.     of  questions  and  software  items  contributed  by  users.   To  make
  486.     submissions  to the digest, please send  to hwilson@ua1vm.ua.edu with a
  487.     subject: "DIG" and description.
  488.  
  489.     For  the  Pacific,   try  netlib@draci.cs.uow.edu.au  located   at  the
  490.     University of Wollongong, NSW, Australia.
  491.  
  492.     A plethora of toolboxes are available at FTP site: research.att.com
  493.     (use netlib for the username)
  494.  
  495.     General index for the MATLAB User Group software library
  496.     ----------------------------------------------------------
  497.     Currently there are the following subdirectories:
  498.     approximation      approximation theory
  499.     archive            old MATLAB user group digests
  500.     control            control theory
  501.     dataanalysis       data analysis and statistics
  502.     graphics           graphics programs
  503.     integration        numerical integration
  504.     linearalgebra      linear algebra utilities
  505.     misc               miscellaneous
  506.     ode                ordinary differential equations
  507.     optimization       as the name says
  508.     pde                partial differential equations
  509.     rootfinding        zero-finding routines
  510.     specialfunctions   special functions
  511.     teaching           for classroom use
  512.     tools              miscellaneous tools
  513.  
  514.     In order to get an index for a subdirectory (tools, say)
  515.     send the message
  516.         send index from MATLAB/tools
  517.     to netlib@ornl.gov.
  518.  
  519.     In order to get some code, (unbundle in the `tools'
  520.     directory, say), send the message
  521.         send unbundle from MATLAB/tools
  522.     to netlib@ornl.gov.
  523.  
  524.     FOR  STUDENTS: Prentice Hall has published  a student edition of matlab
  525.     which contains a book and  set of disks for PCs and Macs.  The software
  526.     is limited only in matrix size (32 x 32 matrix;  1024 elements) and  in
  527.     its ability  to import or call  C or Fortran  subroutines.  On the plus
  528.     side, it is able to run without a coprocessor (it will use one if it is
  529.     present) and it includes a subset of the Signal Processing and Controls
  530.     Toolboxes, The Signals and  Systems Toolbox,  which  provides for added
  531.     functionality. Book only (about US$30): ISBN = 0138560064; Book + disk:
  532.     (about US$50 ISBN=0-13-855974-0 for 3.5" or ISBN=0-13-855982-1 for 5.25
  533.     Macintosh version:  ISBN=0-13-855990-2. There will be related books out
  534.     by mid to late 1993 :  Computer Aided Signal Processing with MATLAB, by
  535.     Burrus, Oppenheim, McClellan, Parks, Schafer, and Schussler; and Signal
  536.     Processing : A Computer  Approach, by Etter. More books in this  MATLAB
  537.     Curriculum Series are planned. For general info: matlab@prenhall.com
  538.  
  539.         [From the Matlab Users Group (Editor, hwilson@ua1vm.ua.edu)]
  540. --------------------------------------------------
  541.  
  542. Q1.2.6: What are the Signal Processing Packages for Mathematica?
  543.         Where can I get them?
  544.  
  545. Package: Signal Processing Pacakages (SPP) and Notebooks.
  546.  
  547. Description:
  548.  
  549.          Public domain  extensions  to  Mathematica.   Enables the symbolic 
  550.     manipulation of signal processing expressions:  1-D discrete/continuous
  551.     convolutions and 1-D/m-D linear transforms  (Laplace, Fourier, z, DTFT,
  552.     and DFT).   For  linear  transforms, you can specify your own transform
  553.     pairs and see the intermediate computations. Great for showing students
  554.     how to take transforms, or for deriving input-output relationships in a
  555.     transform  domain.   Additional abilities include analog filter design,
  556.     solving DE's using transforms, converting signal processing expressions
  557.     to their equivalent TeX forms, and number theoretic operations  (Bezout
  558.     numbers, Smith Form decompositions, and matrix factors).   Accompanying
  559.     SPP  are  tutorial notebooks on analog filter design, Fourier analysis,
  560.     piecewise convolution,  and  the  z-transform (includes a discussion of
  561.     fundamentals  of  digital  filter  design).  These Notebooks illustrate
  562.     difficult concepts (such as  the  flip-and-slide  view  of convolution)
  563.     through animation.  A Notebook reader is available in the public domain
  564.     for Macintosh computers (a BinHexed version is on the ftp site).
  565.  
  566.     FOR STUDENTS:   A student version of Mathematica is available for $175.
  567.     The price includes a copy of the reference manual.  The only drawbacks
  568.     to the student version are that the floating point coprocessor is dis-
  569.     abled and that upgrades cannot be ordered.
  570.  
  571. Contact: Brian Evans, evans@eedsp.gatech.edu.
  572.  
  573. To obtain: anonymous ftp to gauss.eedsp.gatech.edu (130.207.226.24).
  574. (available in UNIX, Mac, and MS-DOS archive formats).
  575.  
  576. --------------------------------------------------
  577.  
  578. Q1.2.7: What is the Control Systems Analysis Packages for Mathematica?
  579.         Where can I get them?
  580.  
  581. Package: Control Systems Analysis Package (COSYPAK) and Notebooks
  582.  
  583. Description: Public domain extension to Mathematica.  Classical and
  584. state-space control analysis and design methods.  The Notebooks
  585. supplement the material in the textbook "Modern Controls Theory" by
  586. Ogata.  Largely based on the Signal Processing Packages (SPP, see above).
  587.  
  588. Contact: Dr. Sreenath, sree@veda.esys.cwru.edu.
  589.  
  590. To obtain: anonymous ftp veda.esys.cwru.edu (129.22.40.9).
  591. --------------------------------------------------
  592.  
  593. Q1.2.8: What are some other Mathematica DSP Notebooks?
  594.  
  595. The following Mathematica notebooks can be ftped from ccrma-ftp.stanford.edu:
  596.  
  597. pub/DSP/GenHamming.ma.Z         Generalized Hamming windows
  598. pub/DSP/Kaiser.ma.Z             The Kaiser window
  599. pub/DSP/WinFlt.ma.Z             Digital filter design by the "window method"
  600.  
  601. (There are other DSP related items in pub/DSP on ccrma-ftp; see other
  602. sections of this FAQ for details).
  603. --------------------------------------------------
  604.  
  605. Q1.2.9: What is the Linear Systems Toolbox for Maple?
  606.         Where can I get it?
  607.  
  608. Package: Linear systems toolbox for Maple.
  609.  
  610. Description: Public domain extension to Maple.
  611.  
  612. Contact: Tony Richardson, amr@mpl.ucsd.edu.
  613.  
  614. To obtain: anonymous ftp to ftp.egr.duke.edu
  615. file pub/maple/linsys1.2.tar.Z.
  616. --------------------------------------------------
  617.  
  618. Q1.2.10: Where can I get text to speech conversion software?
  619.  
  620. Free (but not public domain) text to speech conversion software is
  621. available via anonymous ftp from wilma.cs.brown.edu in the pub directory
  622. as speak.tar.Z.  It will compile and run on a SPARC's built-in audio
  623. after modifying speak.c with the path of your libaudio.h (e.g.,
  624. /usr/demo/SOUND/libaudio.h).  It's a simple phoneme concatenation
  625. system with commensurate synthesized speech quality (a directory of
  626. phoneme audio files is included).  [Joe Campbell, jpcampb@afterlife.ncsc.mil]
  627. --------------------------------------------------
  628.  
  629. Q1.2.11: Where can I get filter design software?
  630.  
  631. There are filter design programs available via anonymous FTP.  The
  632. following are summarized here and discussed in greater detail below:
  633.  
  634. 1. August 1992 IEEE Trans. on Signal Processing: METEOR FIR filter design
  635.    program.
  636.  
  637. 2. DFIR FIR filter design program.
  638.  
  639. 3. Netlib IIR filter design.
  640.  
  641. 4. IEEE Press "Programs for Digital Signal Processing".
  642.  
  643. -----
  644.  
  645. The August 92 issue of IEEE Transactions on Signal Processing there is
  646. a paper entitled "METEOR: A Constraint-Based FIR Filter Design Program"
  647. by Kenneth Steiglitz, Thomas W. Parks and James F. Kaiser.  They
  648. describe an FIR design program which allows specification of the target
  649. frequency response characteristics in a fairly generalised and flexible
  650. way.  As well as designing filters, the program can optimise filter
  651. lengths and push band limits.
  652.  
  653. The paper contains a footnote which says "Pascal and C versions of
  654. source code are available to  anonymous ftp at princeton.edu in the
  655. directory /pub as meteor.p, form.p, meteor.c and form.c".
  656.  
  657. True, they are.  They appear to work.  The Pascal versions have been
  658. put through p2c to get the C versions; all the needed Pascal library
  659. stuff is included in the C versions and they built error-free out of
  660. the box for me on an SGI machine.
  661.  
  662. One catch is, there is no manual - you need the paper to know how to drive
  663. the programs.
  664.  
  665. [Steve Clift, clift@ml.csiro.au]
  666.  
  667. -----
  668.  
  669. Another public domain filter design package is DFIR, for FIR filter designs.
  670. It includes design capabilities for: equiripple linear phase multiband filters,
  671. linear phase differentiators, linear phase Hilbert transform filters, MMSE
  672. interpolating filters and equiripple Nyquist filters.  It is written in
  673. Fortran 77 and has been tested on DECStations and Suns.
  674.  
  675. It is available via anonymous ftp from aldebaran.ee.mcgill.ca in "pub/dfir".
  676. Additionally, a package to plot filter responses is available in
  677. "pltfilter-V2R0.tar.Z".
  678.  
  679. [Peter Kabal, via Witold Waldman]
  680.  
  681. -----
  682.  
  683. Another source is netlib: "A free program  to design IIR Butterworth,
  684. Chebyshev, and Cauer (elliptic) filters, in any of lowpass, bandpass,
  685. band reject, and high pass configurations, is available in netlib (e.g.
  686. research.att.com) as the file netlib/cephes/ellf.shar.Z.  By email to
  687. netlib@research.att.com the request message text is `send ellf from cephes'
  688.  
  689. [Stephen Moshier, mosher@world.std.com]
  690.  
  691. -----
  692.  
  693. The Fortran source code from the IEEE Press book "Programs For
  694. Digital Signal Processing" is available for anonymous ftp from
  695. nimios.eng.mcmaster.ca in directory pub/IEEE/software as dsp.zip.
  696. It includes FIR and IIR filter design software, as well as other
  697. general purpose DSP subroutines.
  698.  
  699. There is also a C/C++ version of the Parks-McLellan FIR filter
  700. design program available for anonymous ftp from ftp.uu.net in
  701. directory /usenet/comp.sources.misc/volume22/fir as file part01.Z.
  702. This program was created and tested using Borland C++ 2.0.
  703.  
  704. [Witold Waldman, witold@hotblk.aed.dsto.gov.au, from
  705. Charles Owen at mgcbo@uxa.ecn.bgu.au]
  706.  
  707. { There are other free filter design programs floating around out there,
  708.   such as optfir/wfir.  Does anyone know of ftp sites? }
  709.  
  710. --------------------------------------------------------------------------
  711. Q1.2.12: What is SigLib?  Where can I get it?
  712.  
  713. SigLib is an ANSI C Source Library of DSP functions that has been used
  714. on a variety of platforms containing both General purpose micros and
  715. DSPs.  Siglib contains graphical front ends for DOS and Windows, the
  716. full C Source, example programs and registered users get one years free
  717. upgrade, maintenance and support.  SigLib is distributed as shareware and
  718. as a commercial product.  The shareware version is available in object code
  719. only, however.
  720.  
  721. The following is a brief overview of some of the functionality of
  722. SigLib: spectrum analysis (including frequency zoom capabilities),
  723. windows, fixed, multirate (polyphase) and adaptive filters, filter
  724. design methods, convolution (1 and 2 dimensions), correlation, signal
  725. generation, modulation and a whole suite of DSP utility functions and
  726. graphic routines.
  727.  
  728. Contact: John Edwards, johned@cix.compulink.co.uk.
  729.  
  730. To obtain: Compuserve, or 157 Sileby Road, Barrow-on-Soar, Leics, LE12 8LW, UK.
  731.  
  732. {If someone downloads this, mail a note to Brad Hards, hards4@ee.adfa.oz.au,
  733. and he will put it up for anonymous FTP.}
  734.  
  735. --------------------------------------------------------------------------
  736. Q1.2.13: What is the AudioFile System?  Where can I get it?
  737.  
  738. The AudioFile System (AF) is a device-independent network-transparent 
  739. audio server.  The distribution includes  device drivers and server 
  740. code for Digital RISC systems running Ultrix, Digital Alpha AXP systems 
  741. running OSF/1, and Sun Microsystems SPARCstations running SunOS. 
  742. Also included are an API and library, out-of-the-box core applications, 
  743. and a number of contributed applications.  AudioFile allows applications 
  744. to generate and process audio in real-time and at present handles 
  745. up to 48 KHz stereo audio. 
  746.  
  747. AudioFile is distributed in source form, with a copyright allowing 
  748. unrestricted use for any purpose except sale (see the Copyright notice). 
  749. af@crl.dec.com is a mailing list for discussions of AudioFile. Send 
  750. mail to af-request@crl.dec.com to be added to this list. 
  751.  
  752. The kit is located at ftp site crl.dec.com (Internet 192.58.206.2) in
  753. /pub/DEC/AF.  The kit is contained in a compressed tar file named
  754. AF2R2.tar.Z.  Use anonymous ftp to retrieve the file.
  755. AF2R2-other.tar.Z is a sample kit of Hi-Fi sound bites, if you
  756. have suitable hardware such as DECaudio.
  757.  
  758. [Larry Stewart, stewart@crl.dec.com]
  759.  
  760. =============================================================================
  761.  
  762. 2. Algorithms and standards.
  763.  
  764. This section deals with DSP algorithms and related standards.
  765.  
  766. =======================================================================
  767. Q2.1: Where can I get some algorithms for general DSP?
  768.  
  769. The following archives contain things such as matrix operations, FFT's and
  770. generally useful things like that, as opposed to complete applications:
  771.  
  772. (1) host ux1.cso.uiuc.edu - log in as anonymous, get the file math/README.
  773.     It summarises the contents of the archive.
  774.  
  775. (2) Netlib, which serves some of this software via email. Try mail to
  776.     netlib@ORNL.GOV with "send help" in the subject field.
  777.     For Europe: 
  778.         Internet:       netlib@nac.no
  779.         EARN/BITNET:    netlib%nac.no@norunix.bitnet
  780.         X.400:          s=netlib; o=nac; c=no;
  781.         EUNET/uucp:     nac!netlib
  782.     For the Pacific, try    
  783.         netlib@draci.cs.uow.edu.au
  784.      For background about netlib, see Jack J. Dongarra and Eric Grosse,
  785.      "Distribution of Mathematical Software Via Electronic Mail,"
  786.      Comm. ACM (1987) 30,403--407.
  787.      
  788.      A similar collection of statistical software is available from
  789.            statlib@temper.stat.cmu.edu.
  790.  
  791.      The symbolic algebra system REDUCE is supported by
  792.           reduce-netlib@rand.org.
  793.  
  794. (3) The Naval Surface Warfare Center has a library of mathematical
  795.     Fortran subroutines that may be of use.  From the report itself:
  796.  
  797.     NSWC Library of Mathematical Subroutines
  798.     Report No.: NSWC TR 90-21, January 1990
  799.     by Alfred H. Morris, Jr.
  800.     
  801.     Naval Surface Warfare Center (E43)
  802.     Dahlgren, VA 22448-5000
  803.     U.S.A.
  804.     
  805.     Distribution: Approved for public release; distribution unlimited.
  806.     
  807.     Abstract:
  808.     
  809.     The NSWC library is a library of general-purpose Fortran subroutines
  810.     that provide a basic computational capability in a variety of
  811.     mathematical activities. Emphasis has been placed on the transportability
  812.     of the codes. Subroutines are available in the following areas:
  813.     Elementary Operations, Geometry, Special Functions, Polynomials, Vectors,
  814.     Matrices, Large Dense Systems of Linear Equations, Banded Matrices,
  815.     Sparse Matrices, Eigenvalues and Eigenvectors, l1 Solution of Linear
  816.     Equations, Least-Squares Solution of Linear Equations, Optimization,
  817.     Transforms, Approximation of Functions, Curve Fitting, Surface Fitting,
  818.     Manifold Fitting, Numerical Integration, Integral Equations, Ordinary
  819.     Differential Equations, Partial Differential Equations
  820.  
  821.     [Witold Waldman, witold@hotblk.aed.dsto.gov.au]
  822.  
  823.     Apparently euler.math.usma.edu has these routines in the file
  824.     "pub/misc/nswc.tar.Z".  This is a 3.2 Mbyte file with 800+ Fortran
  825.     routines mentioned above.  Apparently euler.math.usma.edu has been
  826.     down a lot lately, however, and the network connection to it is
  827.     quite slow.  If somebody would like to make this available from
  828.     a more reliable site, please let us know at comp-dsp-faq@ohm.Berkeley.EDU.
  829.  
  830. (4) The Fortran source code from the IEEE Press book "Programs For
  831.     Digital Signal Processing" is available for anonymous ftp from
  832.     nimios.eng.mcmaster.ca in directory pub/IEEE/software as dsp.zip.
  833.     It includes FIR and IIR filter design software, FFT subroutines,
  834.     interpolation programs, a coherence and cross-spectral estimation
  835.     program, linear prediction analysis programs, and a frequency 
  836.     domain filtering program.
  837.  
  838.     [Witold Waldman, witold@hotblk.aed.dsto.gov.au, from
  839.     Charles Owen, mgcbo@uxa.ecn.bgu.edu]
  840.  
  841. Also, see the summary of DSP-related FTP sites, at the end of this FAQ.
  842.  
  843. If you don't know where to find what you're after, try archie.
  844.  
  845. =======================================================================
  846.  
  847. Q2.2: What are CELP and LPC?  Where can I get the source for CELP and LPC?
  848.  
  849. CELP stands for "code excited linear prediction".  LPC stands for
  850. "linear predictive coding".  They are compression algorithms used for
  851. low bit rate (2400 and 4800 bps) speech coding.
  852.  
  853. The U.S. DoD's Federal Standard 1016 (FS 1016) based 4800 bps code
  854. excited linear prediction voice coder version 3.2 (CELP 3.2) Fortran
  855. and C simulation source codes are available for worldwide distribution
  856. at no charge (on DOS diskettes, but configured to compile on Sun SPARC
  857. stations) from:
  858.  
  859.         Bob Fenichel
  860.         National Communications System
  861.         Washington, D.C.  20305
  862.         1-703-692-2124
  863.         1-703-746-4960 (fax)
  864.  
  865. Example input and processed speech files, a technical information bulletin,
  866. and the official standard "Federal Standard 1016, Telecommunications:
  867. Analog to Digital Conversion of Radio Voice by 4,800 bit/second Code
  868. Excited Linear Prediction (CELP)" are included at no charge.
  869.  
  870. Unfortunately, a document that is a vital part of the CELP release package
  871. is not available in electronic form.  Anyone serious interested in CELP
  872. should obtain the document:
  873.  
  874.         Details to Assist in Implementation of Federal Standard 1016 CELP.
  875.         National Communications System, Office of Technology & Standards, 1992.
  876.         Technical Information Bulletin 92-1.
  877.  
  878. It is available from the above address.
  879.  
  880. The following article describes the FS 1016 4.8-kbps CELP coder:
  881.  
  882. Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, "The
  883. Proposed Federal Standard 1016 4800 bps Voice Coder:  CELP," Speech
  884. Technology Magazine, April/May 1990, p. 58-64.
  885.  
  886. The U.S. DoD's Federal-Standard-1015/NATO-STANAG-4198 based 2400 bps
  887. linear prediction coder version 53 (LPC-10e v53) Fortran or C simulation
  888. source codes are available on a limited basis upon written request to:
  889.  
  890.         Tom Tremain
  891.         Department of Defense
  892.         Ft. Meade, MD  20755-6000
  893.         USA
  894.  
  895. The U.S. Federal Standard 1015 (NATO STANAG 4198) is described in:
  896. Thomas E. Tremain, "The Government Standard Linear Predictive Coding
  897. Algorithm:  LPC-10," Speech Technology Magazine, April 1982, p. 40-49.
  898.  
  899. Copies of the official standards FS 1015 and FS 1016 are available for
  900. US $2.50 each from:
  901.  
  902.         GSA Rm 6654
  903.         7th & D St SW
  904.         Washington, D.C.  20407
  905.         1 (202) 708-9205
  906.  
  907.  
  908. Realtime DSP code for FS-1015 and FS-1016 is sold by several vendors,
  909. including DSP Software Engineering and Analogical Systems (see the
  910. vendor address list in section 5 for contact info).  DSP Software
  911. Engineering's FS-1016 code can run on a DSP Research's Tiger 30 or on
  912. Intellibit's AE2000 TMS320C31 based 3" by 2.5" card.  See section 4.1
  913. for more on these cards.  Analogical's product runs on a 27 MHz
  914. DSP56001 chip.
  915.  
  916. [Most of the above from Joe Campbell, jpcampb@afterlife.ncsc.mil, with
  917. additions from Dan Frankowski, drankow@cs.umn.edu, and Ed Hall,
  918. edhall@rand.org]
  919.  
  920. {The CELP code is no longer available for FTP.  If anyone knows of a
  921. new ftp site, please send mail to comp-dsp-faq@ohm.berkeley.edu.}
  922.  
  923. =======================================================================
  924. Q2.3: What is ADPCM?  Where can I get source for it?
  925.  
  926. ADPCM stands for Adaptive Differential Pulse Code Modulation.  It is a
  927. family of speech compression and decompression algorithms.  A common
  928. implementation takes 16-bit linear PCM samples samples and converts
  929. them to 4-bit samples, yeilding a compression rate of 4:1.
  930.  
  931. There is public domain C code available via anonymous ftp at
  932. ftp.cwi.nl in /pub/adpcm.shar written by Jack Jansen (email
  933. Jack.Jansen@cwi.nl).  It is very programmer-friendly.  The ADPCM code
  934. used is the Intel/DVI ADPCM code which is being recommended by the IMA
  935. Digital Audio Technical Working Group.  It allows the following calls:
  936.  
  937. adpcm_coder(short inbuf[], char outbuf[], int nsample,
  938.         struct adpcm_state *state);
  939. adpcm_decoder(char inbuf[], short outbuf[], int nsample,
  940.         struct adpcm_state *state);
  941.  
  942. The routines have been tested on an SGI Indigo running Irix 4.0.2 and
  943. on a Sparcstation 1+ running SunOS 4.1.1.  On a Sun, the code will
  944. compress at 250Ksample/sec and decompress at 300Ksample/sec.  On an
  945. SGI, the compressor runs at 350Ksample/sec and the decompressor at
  946. 700Ksample/sec.
  947.  
  948. Note that this is NOT a CCITT G722 coder.   The CCITT ADPCM standard is
  949. much more complicated, probably resulting in better quality sound but
  950. also in much more computational overhead.
  951.  
  952. [From Dan Frankowski, drankow@cs.umn.edu; Jack Jansen, Jack.Jansen@cwi.nl]
  953.  
  954. =======================================================================
  955. Q2.4: What is GSM?  Where can I get source for it?
  956.  
  957. The README file for GSM says:
  958.  
  959. GSM 06.10 13 kbit/s RPE/LTP speech compression available
  960. --------------------------------------------------------
  961.  
  962. The Communications and Operating Systems Research Group (KBS) at the
  963. Technische Universitaet Berlin is currently working on a set of
  964. UNIX-based tools for computer-mediated telecooperation that will be
  965. made freely available.
  966.  
  967. As part of this effort we are publishing an implementation of the
  968. European GSM 06.10 provisional standard for full-rate speech
  969. transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
  970. excitation/long term prediction) coding at 13 kbit/s.
  971.  
  972. GSM 06.10 compresses frames of 160 13-bit samples (8 kHz sampling
  973. rate, i.e. a frame rate of 50 Hz) into 260 bits; for compatibility
  974. with typical UNIX applications, our implementation turns frames of 160
  975. 16-bit linear samples into 33-byte frames (1650 Bytes/s).
  976. The quality of the algorithm is good enough for reliable speaker
  977. recognition; even music often survives transcoding in recognizable 
  978. form (given the bandwidth limitations of 8 kHz sampling rate).
  979.  
  980. The interfaces offered are a front end modelled after compress(1), and
  981. a library API.  Compression and decompression run faster than realtime
  982. on most SPARCstations.  The implementation has been verified against the
  983. ETSI standard test patterns.
  984.  
  985. Jutta Degener (jutta@cs.tu-berlin.de)
  986. Carsten Bormann (cabo@cs.tu-berlin.de)
  987.  
  988. Communications and Operating Systems Research Group, TU Berlin
  989. Fax: +49.30.31425156, Phone: +49.30.31424315
  990.  
  991. An implementation can be FTPed from
  992.         tub.cs.tu-berlin.de:/pub/tubmik/gsm-1.0.tar.Z
  993.                            +/pub/tubmik/gsm-1.0-patch1
  994.                            +/pub/tubmik/gsm-1.0-patch2
  995.  
  996. or as a faster but not always up-to-date alternative:
  997.         liasun3.epfl.ch:/pub/audio/gsm-1.0pl1.tar.Z
  998.  
  999. [From Dan Frankowski, dfrankow@cs.umn.edu]
  1000. ============================================================================
  1001. Q2.5: How does pitch perception work, and how do I implement it on my DSP chip?
  1002.  
  1003. Pitch is officially defined as "That attribute of auditory sensation
  1004. in terms of which sounds may be ordered on a musical scale."  Several
  1005. good examples illustrating the subtleties of pitch perception are
  1006. included in the "Auditory Demonstrations CD" which is available from
  1007. the Acoustical Society of America, Woodbury, NY 10797 for $20.
  1008.  
  1009. A good general reference about the psychology of pitch perception is
  1010. the book:
  1011.  
  1012.         B.C.J. Moore, "An Introduction to the Psychology of Hearing",
  1013.         Academic Press, London, 1989.
  1014.  
  1015. This book is available in paperback and makes a good desk reference.
  1016.  
  1017. An algorithm implementation that matches a large body of psychoacoustical
  1018. work, but which is computationally very intensive, is presented in the paper:
  1019.  
  1020.         Malcolm Slaney and Richard Lyon, "A Perceptual Pitch Detector," 
  1021.         Proceedings of the International Conference of Acoustics, Speech, 
  1022.         and Signal Processing, 1990, Albuquerque, New Mexico.
  1023.  
  1024. The definitive papers describing the use of such a perceptual pitch
  1025. detector as applied to the classical pitch literature is in:
  1026.  
  1027.         Ray Meddis and M. J. Hewitt. "Virtual pitch and phase
  1028.         sensitivity of a computer model of the auditory periphery. "
  1029.         Journal of the Acoustical Society of America 89 (6 1991): 2866-2682.
  1030.         and 2883-2894.
  1031.  
  1032. The current work that argues for a pure spectral method starts with the work
  1033. of Goldstein:
  1034.  
  1035.         J. Goldstein,  "An optimum processor theory for the 
  1036.         central formation of the pitch of complex tones," Journal
  1037.         of the Acoustical Society of America 54, 1496-1516, 1973.
  1038.  
  1039. Two approaches are worth considering if something approximating pitch
  1040. is appropriate.  The people at IRCAM have proposed a harmonic analysis
  1041. approach that can be implemented on a DSP
  1042.  
  1043.         Boris Doval and Xavier Rodet, "Estimation of Fundamental Frequency
  1044.         of Musical Sound Signals," Proceedings of the 1991 International
  1045.         Conference on Acoustics, Speech, and Signal Processing, Toronto,
  1046.         Volume 5, pp. 3657-3660.
  1047.  
  1048. The classic paper for time domain (peak picking) pitch algorithms is:
  1049.  
  1050.         B. Gold and L. Rabiner, "Parallel processing techniques for estimating
  1051.         pitch periods of speech in the time domain," Journal of the Acoustical
  1052.         Society of America, 46, pp 441-448, 1969.
  1053.  
  1054. Finally, a word of caution: Pitch is not single-valued.  We can hear a
  1055. sound and match it to several different pitches.  Imagine the number
  1056. of instruments in an orchestra, each with its own pitch.  Even a
  1057. single sound can have more than one pitch.  See for example
  1058. Demonstration 27 from the ASA Auditory Demonstrations CD.
  1059.  
  1060. [The above from Malcolm Slaney, Apple Computer, and John Lazzaro,
  1061. U.C. Berkeley.]
  1062.  
  1063. =======================================================================
  1064.  
  1065. Q2.6: What standards are there for digital audio?  What is AES/EBU?
  1066.       What is S/P-DIF?
  1067.  
  1068. The "AES/EBU" (Audio Engineering Society / European Broadcast Union)
  1069. digital audio standard is probably the most popular digital audio
  1070. standard today.  Most consumer and professional digital audio devices
  1071. (CD players, DAT decks, etc.) that feature digital audio I/O support
  1072. AES/EBU.
  1073.  
  1074. AES/EBU is a bit-serial communications protocol for transmitting
  1075. digital audio data through a single transmission line.  It provides two
  1076. channels of audio data (up to 24 bits per sample), a method for
  1077. communication control and status information ("channel status bits"),
  1078. and some error detection capabilities.  Clocking information (i.e.,
  1079. sample rate) is derived from the AES/EBU bit stream, and is thus
  1080. controlled by the transmitter.  The standard mandates use of 32 kHz,
  1081. 44.1 kHz, or 48 kHz sample rates, but some interfaces can be made to
  1082. work at other sample rates.
  1083.  
  1084. AES/EBU provides both "professional" and "consumer" modes.  The big
  1085. difference is in the format of the channel status bits mentioned above.
  1086. The professional mode bits include alphanumeric channel origin and
  1087. destination data, time of day codes, sample number codes, word length,
  1088. and other goodies.  The consumer mode bits have much less information,
  1089. but do include information on copy protection (naturally).  Additionally,
  1090. the standard provides for "user data", which is a bit stream containing
  1091. user-defined (i.e., manufacturer-defined) data.  According to Tim
  1092. Channon, "CD user data is almost raq CD subcode; DAT is StartID and
  1093. SkipID.  In progfessional mode, there is an SDLC protocol or, if DAT,
  1094. it may be the same as consumer mode."
  1095.  
  1096. There physical connection media are commonly used with AES/EBU:
  1097. balanced (differential), using two wires and shield in three-wire microphone
  1098. cable with XLR connectors; unbalanced (single-ended), using audio coax cable
  1099. with RCA jacks; and optical (via fiber optics).
  1100.  
  1101. "S/P-DIF" (Sony/Philips Digital Interface Format) typically refers to
  1102. AES/EBU operated in consumer mode over unbalanced RCA cable.  Note
  1103. that S/P-DIF and AES/EBU mean different things depending on how much
  1104. of a purist you are in the digital audio world; see the Finger article
  1105. below.
  1106.  
  1107. References:
  1108.  
  1109. Finger, Robert, "AES3-199X: The Revised Two Channel Digital Audio
  1110. Interface (DRAFT)", presented at the 91st Convention of the Audio
  1111. Engineering Society, October 4-8, 1991.  Reprints: AES, 60 East 42nd
  1112. St., New York, NY, 10165.
  1113.  
  1114. [The above from Phil Lapsley, phil@ohm.Berkeley.EDU, and Tim Channon,
  1115. tchannon@black.demon.co.uk]
  1116.  
  1117. =============================================================================
  1118.  
  1119. Q2.7: What is mu-law encoding?  Where can I get source for it?
  1120.  
  1121. Mu-law (also "u-law") encoding is a form of logarithmic quantization
  1122. or companding.  It's based on the observation that many signals are
  1123. statistically more likely to be near a low signal level than a high
  1124. signal level.  Therefore, it makes more sense to have more quantization
  1125. points near a low level than a high level.  In a typical mu-law system,
  1126. linear samples of 14 to 16 bits are companded to 8 bits.  Most telephone
  1127. quality codecs (including the Sparcstation's audio codec) use mu-law
  1128. encoded samples.
  1129.  
  1130. Desktop Sparc machines come with routines to convert between linear and
  1131. mu-law samples.  On a desktop Sparc, see the man page for audio_ulaw2linear
  1132. in /usr/demo/SOUND/man.
  1133.  
  1134. Craig Reese posted the source of similar routines to comp.dsp in August '92.
  1135. These are archived on evans.ee.adfa.oz.au (131.236.30.24) in /pub/dsp/misc
  1136.  
  1137. References:
  1138.  
  1139. CCITT Recommendation G.711 (very difficult to follow).
  1140.  
  1141. Michael Villeret, et. al, "A New Digital Technique for Implementation
  1142. of Any Continuous PCM Companding Law,", IEEE Int. Conf. on Communications,
  1143. 1973, vol. 1, pp. 11.12-11.17.
  1144.  
  1145. MIL-STD-188-113, "Interoperability and Performance Standards
  1146. for Analog-to-Digital Conversion Techniques," 17 February 1987.
  1147.  
  1148. "TI Digital Signal Processing Applications with the TMS320 Family",
  1149. pp. 169-198.
  1150.  
  1151. [From Joe Campbell; Craig Reese, cfreese@super.org; Sepehr Mehrabanzad,
  1152. sepehr@falstaff.dev.cdx.mot.com]
  1153.  
  1154. =============================================================================
  1155.  
  1156. Q2.8: How can I do CD <-> DAT sample rate conversion?
  1157.  
  1158. CD players use a 44.1 kHz sample rate, whereas DAT uses a 48 kHz sample rate.
  1159. This means that you must do sample rate conversion before you can get data
  1160. from a CD player directly into a DAT deck.
  1161.  
  1162. [From Ed Hall, edhall@rand.org:]
  1163.  
  1164. For a start, look at "Multirate Digital Signal Processing" by Crochiere
  1165. and Rabiner (see FAQ section 1.1).
  1166.  
  1167. Almost any technique for producing good digital low-pass filters will be
  1168. adaptable to sample-rate conversion. 44.1:48 and vice-versa is pretty
  1169. hairy, though, because the lowest whole-number ratio is 147:160.  To do
  1170. all that in one go would require a FIR with thousands of coefficients,
  1171. of which only 1/147th or 1/160th are used for each sample--the real
  1172. problem is memory, not CPU for most DSP chips.  You could chain several
  1173. interpolators and decimators, as suggested by factoring the ratio into
  1174. 3*7*7:2*2*2*2*2*5.  This adds complexity, but reduces the number of
  1175. coefficients required by a considerable amount.
  1176.  
  1177. In any case, your local DSP guru will probably be able to suggest a good
  1178. program for designing digital filters (this is a good general question
  1179. for the net, anyway).  This is one case where going beyond the simpler
  1180. windowed-sinc-based approaches might pay off (and I'm afraid I can't
  1181. recommend any readily available programs myself).
  1182.  
  1183. =============================================================================
  1184.  
  1185.  
  1186.  
  1187. 3. Programmable DSP chips and software.
  1188.  
  1189. This section deals with programmable DSP chips and their software.
  1190.  
  1191. Q3.1: What are the available DSP chips and chip architectures?
  1192.  
  1193. { This is based on a woefully inadequate databook collection.  Anyone want
  1194.   to add to this list?  Manufacturers want to submit anything? }
  1195.  
  1196. The "big four" programmable DSP chip manufacturers are Texas Instruments,
  1197. with the TMS320 series of chips; Motorola, with the DSP56000 and DSP96000
  1198. series; AT&T, with the DSP16 and DSP32 series; and Analog Devices, with
  1199. the ADSP2100 series.  A good overview of prorammable DSP chips is published
  1200. periodically in EDN magazine.  The most recent version is from Sep. 17, 1992,
  1201. pp. 90-141.
  1202.  
  1203. Here's a less ambitious chip breakdown by manufacturer:
  1204.  
  1205. -------------------------------------
  1206.  
  1207. Texas Instuments:
  1208.  
  1209. TMS320C1x: family of low cost fixed-point DSP's; 16 bit data, 32 bit
  1210. registers; Various RAM and ROM configurations; 16 bit I/O bus, serial ports.
  1211.  
  1212. TMS320C25: 50MHz fixed-point DSP; 16 bit data, 32 bit registers;
  1213. 12.5 MIPS @ 50MHz.
  1214.  
  1215. TMS320C30: 27/33/40 MHz floating point DSP; 32 bit floating point,
  1216. 24 bit fixed point data, 40 bit  registers; DMA  controller; dual serial
  1217. ports; some support for multi-processor arrays.
  1218.  
  1219. TMS320C31: version of C30 minus peripheral bus, one serial port, and the 4Kx32
  1220. internal ROM.  ~$20, 132 pin PQFP.
  1221.  
  1222. TMS320C40: 40/50 MHz floating point DSP; extensive parallel processing
  1223. support through 6 buffered byte-wide 20 Mb/s links and 6 channel DMA; cache.
  1224.  
  1225. TMS320C50: enhanced TMS320C25 (double throughput); low overhead looping;
  1226. 10 Kwords SRAM on chip.
  1227.  
  1228. -------------------------------------
  1229.  
  1230. Motorola:
  1231.  
  1232. DSP56001: 20.5, 27, or 33 MHz 24-bit fixed point DSP.  24 bit data bus, 16 bit
  1233. address bus, 56 bit accumulators (2), host interface port, serial ports (2),
  1234. general purpose I/O pins, timer.  Harvard architecture.  512 words program
  1235. RAM, 32 words bootstrap ROM, 512 words data RAM, 512 words data ROM on chip.
  1236. Available in PGA, CQFP or PQFP packaging.
  1237.  
  1238. DSP56000: Mask-programmed version of DSP56001, same peripherals and data
  1239. memories, 3.75k words program ROM on chip.
  1240.  
  1241. DSP56002: modular DSP based on new 24-bit DSP56k core, a superset of
  1242. the DSP56001 architecture with On-Chip Emulation (OnCE) debug port,
  1243. clock PLL and improved bus arbitration. Has four cycle double precision
  1244. multiply and support for block floating point. Same memory as in
  1245. DSP56001, except for 64 words bootstrap ROM.  Host interface port,
  1246. serial ports (2), general purpose I/O pins, programmable 24-bit timer,
  1247. non-maskable interrupt.  Low power fully static design, no minimum
  1248. clock frequency requirement.  Available at 40 MHz (5V supply) in PGA
  1249. and CQFP packaging.
  1250.  
  1251. DSP56004: modular DSP, same 24-bit DSP56k core as in DSP56002. Targeted
  1252. to consumer digital audio applications.  Has On-Chip Emulation (OnCE)
  1253. debug port, clock PLL, serial host interface (I2C and SPI), four
  1254. general purpose I/O pins, two stereo serial audio receivers (I2S/Sony),
  1255. three stereo serial audio transmitters (I2S/Sony), external SRAM/DRAM
  1256. memory interface with 8-bit data bus.  Low power fully static design,
  1257. no minimum clock frequency requirement.  Available at 40 MHz (5V
  1258. supply) in 80-pin QFP package.
  1259.  
  1260. DSP56156: 40, 50, or 60 MHz fixed point DSP; 16 bit data bus, 40 bit
  1261. accumulators (2), host interface port, serial ports (2), timer, OnCE
  1262. debug port, clock PLL, 14 bit sigma-delta voice band CODEC, 2K words
  1263. program RAM, 2K words data RAM on chip.
  1264.  
  1265. DSP96002: IEEE format floating point DSP; two complete 32 bit data and
  1266. address buses; Harvard architecture. 1k words program RAM, 64 words
  1267. bootstrap ROM, 1k words data RAM, 1k words data ROM, host interface
  1268. ports (2).  Available in 33 MHz or 40 MHz in 223-pin PGA packaging.
  1269. [The above from   Sergio Liberman, sergio@msil.sps.mot.com    ]
  1270.  
  1271. -------------------------------------
  1272.  
  1273. AT&T:
  1274.  
  1275. DSP 16 FAMILY: DSP16A, $22.60; DSP1610, $91; DSP1616, $35.70
  1276. 16 bit fixed point DSPs.  The DSP16A has a 25ns cycle time while the
  1277. 16C has an ADC and DAC on chip. The C-version also has a 4-pin JTAG
  1278. interface.  The 1610/1616 are enhanced versions intended for cellular
  1279. phone use.  The chips use separate on-chip 16-bit program- and data
  1280. buses.  The A and C versions have 12k x 16-bit program ROM and a 2k x
  1281. 16-bit data-RAM while featuring parallell and serial I/O.
  1282.  
  1283. DSP 32C/3210: DSP32C, $70(1000); DSP3210, $50(100k)
  1284. 32-bit floating point with 40-bits accumulator and 16/24-bit fixed
  1285. point. These DSP's uses a single 4M-word (3210: 4G-word) linear memory
  1286. space instead of the separate program and data memory found on most
  1287. DSP:s. The bus can be accessed four times and each internal memory two
  1288. times per cycle. The 3210, along with the VCOS operating system is
  1289. intended for use on the mother board of personal computers and
  1290. workstations where it shares memory with the host.  The 32C has three
  1291. 512 x 32-bit RAM:s while the 3210 has two 1k x 32-bit RAMs and a 256 x
  1292. 32-bit boot ROM. 32C: Serial and parallell I/O, 3210: Serial I/O,
  1293. timer, DMA-controller.  3210 available at 50 and 66MHz.
  1294.  
  1295. -------------------------------------
  1296.  
  1297. Analog Devices:
  1298.  
  1299. ADSP-2100:  40 and 50Mhz fixed point DSP (10 MIPS, 12.5MIPS).  16 bit
  1300. operations with 40-bit multiply-accumulate.  No on chip memory except for a 16
  1301. word instruction cache.  Off chip harvard architecture.  PGA and PQFP
  1302. packages.
  1303.  
  1304. ADSP-2101:  Derived from ADSP-2100; 16 bit operations with 40-bit MAC
  1305. register.  Extras include on chip memory of 2Kx24 program memory
  1306. instruction/data RAM and 1Kx16 data memory RAM, 16-bit timer, two serial
  1307. ports, low power state.  PGA, PLCC, PQFP packages.  Fastest speed grade in
  1308. production is 16.6 MHz (16.6MIPS).
  1309.  
  1310. ADSP-2102:  RAM/ROM version of 2101; user selects how much of the 2kx24
  1311. program memory is mask ROM.
  1312.  
  1313. ADSP-2103:  3.3V version of the 2101 running at 13MHz (13 MIPs).  PLCC, PQFP
  1314. packages.
  1315.  
  1316. ADSP-2105:  10Mhz (10MIPS) low cost fixed point DSP with 1 serial port, timer
  1317. and 1kx24 instruction/data RAM in program memory space, and 512 word data RAM
  1318. in data memory space.  Architecture and instruction set identical to
  1319. ADSP-2101.  Pin compatible with 2101.  PLCC package only (can use standard 68
  1320. pin plcc socket).  This processor sells for US $9.90 in any quantity.
  1321.  
  1322. ADSP-2115:  Architecture and pinout same as ADSP-2101, but 1K program memory
  1323. RAM, 1/2K data memory RAM with 2 serial ports, interval timer etc.  PLCC and
  1324. PQFP packages.  Available in 13.8MHz and 16MHz (13.8, 16 MIPs)
  1325.  
  1326. ADSP-2111:  Adds a 8/16bit host interface port to ADSP-2101 architecure
  1327. allowing interface to Intel or Motorola style microprocessors.  13 and 16 MIPs
  1328. speeds available.  PGA and PQFP packages.
  1329.  
  1330. ADSP-21msp50:  ADSP-2111 with an on chip a/d and d/a interface (65dB SNR)
  1331. Additional low power modes allow CMOS standby (<100uA).  100-lead PQFP
  1332. package.
  1333.  
  1334. ADSP-216x:  Four devices, two with 8Kx24 mask ROM and two with 2K*24 mask ROM,
  1335. each has 1/2K data memory RAM.  Pin-for-pin compatible with ADSP-2101.  PLCC,
  1336. PQFP packages.
  1337.  
  1338. ADSP-21020:  20/25/33 MHz floating-point DSP; Supports 32-bit fixed point,
  1339. IEEE format 32-bit floating point, and 40-bit floating point; 40-bit registers
  1340. plus two 80-bit fixed-point multiply-accumulators; Harvard arch.  with 32 word
  1341. instruction cache allows two data accesses in a single cycle; IEEE 1149.1 JTAG
  1342. boundry scan; 33.3 MIPS @ 33.3 MHz.
  1343.  
  1344. ADSP21010:  Slower inexpensive version of '020 (16 MHz).  Limited to 32-bit
  1345. fixed and floating point.
  1346.  
  1347. All of the processors (except the 2100) use a 1X instruction clock and use an
  1348. on chip PLL to generate an internal 4X clock.  All processors have an extended
  1349. Harvard architecture which allows two data fetches and an instruction fetch
  1350. every cycle in parallel with an alu or mac operation.  
  1351.  
  1352. Processors with internal memory support booting from inexpensive 8 bit EPROMS.
  1353. All processors include hardware support for zero overhead looping, modulo
  1354. addressing, single cycle context switch, and bit reversal addressing.  All
  1355. instructions, even those which access external memory can complete in 1 cycle.
  1356.  
  1357. [Analog Devices DSP applications, dsp_applications@analog.com]
  1358.  
  1359. =======================================================================
  1360.  
  1361. Q3.2: Software for Motorola DSPs.
  1362.  
  1363. =======================================================================
  1364.  
  1365. Q3.2.1: Where can I get a free assembler for the Motorola DSP56000?
  1366.  
  1367. A free assembler for the Motorola DSP56000 exists, thanks to Quinn
  1368. Jensen, jensenq@qcj.icon.com.  The current version is 1.1, and
  1369. it is posted to alt.sources, so look for it on mirrors of that
  1370. newsgroup (like wuarchive.wustl.edu).
  1371.  
  1372. =======================================================================
  1373.  
  1374. Q3.2.2: Where can I get a free C compiler for the Motorola DSP56000?
  1375.  
  1376. There are two separate compiler sources for the Motorola DSP56000.  One
  1377. is the port of gcc 1.40 done by Andrew Sterian (asterian@eecs.umich.edu) and
  1378. the other is a port of gcc 1.37.1 done by Motorola and returned to the
  1379. FSF.  Andrew's port has bowed to Motorola's version.  Both may be
  1380. portable to gcc2.x.x with some effort required.  Neither of these comes
  1381. with an assembler, but you can get a free DSP56000 assembler elsewhere
  1382. (see Q3.2.1 above).
  1383.  
  1384. The Motorola gcc source is available for FTP from:
  1385.  
  1386.         nic.funet.fi            ~pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z
  1387.         evans.ee.adfa.oz.au     pub/micros/56k/g56k.tar.Z
  1388.  
  1389. >From Andrew Sterian, asterian@eecs.umich.edu:
  1390.  
  1391. My DSP56156 port is still the only DSP56156 compiler around and I have
  1392. just released an updated version of it.  Both this compiler and the
  1393. previous incarnation are archived on wuarchive.wustl.edu (in the
  1394. usenet/alt.sources directory) amongst other places.
  1395.  
  1396. =======================================================================
  1397.  
  1398. Q3.2.3: Where can I get algorithms and libraries for Motorola DSPs?
  1399.         What is the number for the Motorola DSP BBS?
  1400.  
  1401. Motorola runs "Dr. Bub", a bulletin board for DSPs containing source code
  1402. for various libraries and algorithms.  You can call it at (512) 891-3771
  1403. (9600, 4800, 2400, 1200 bps) or (512) 891-3773 (2400/1200/300 bps).
  1404. Format is 8 data bits, no parity, 1 stop bit).  Log in as "guest" to
  1405. browse the system, or you can open an account by entering "new" at the
  1406. account name prompt.  [John Fisher, johnf@dsp.sps.mot.com]
  1407.  
  1408. Alternatively, Dr. BuB is mirrored on the following sites:
  1409.  
  1410. calvin.stanford.edu   (36.14.0.43)     in   /motorola
  1411. bode.ee.ualberta.ca   (129.128.16.96)  in   /pub/dos/motorola
  1412. nic.funet.fi          (128.214.6.100)  in   /pub/misc/motorola
  1413. doc.ic.ac.uk          (146.169.3.7)    in   
  1414. /computing/systems/motorola/digital-signal-processing/dr.bub.sources
  1415.  
  1416. Also try nic.funet.fi in /pub/ham/dsp for a lot of good stuff on 
  1417. communications uses, including some hardware.
  1418.  
  1419. ccrma-ftp.stanford.edu also has a variety of DSP code (much of it NeXT
  1420. specific, see below), including the following for the DSP56000:
  1421.  
  1422. pub/clm.tar.Z           "CLM", a package aimed mainly at composers doing
  1423.                         computer music in Common Lisp, but includes a Lisp
  1424.                         56000 assembler, debugger, loader, large libraries of
  1425.                         DSP56000 routines useful in computer music, and
  1426.                         a compiler from a subset of Common Lisp to
  1427.                         DSP56000 code.  [bil@ccrma.stanford.edu]
  1428.  
  1429. =======================================================================
  1430.  
  1431. Q3.2.4: Where can I get NeXT-compatible Motorola DSP56001 code?
  1432.  
  1433. Try the following from ccrma-ftp.Stanford.EDU:
  1434.  
  1435. DSP programs for the NeXT platform:
  1436.  
  1437. pub/DSP/resample.tar.Z          Audio sampling-rate conversion and FIR
  1438.                                 filter design.
  1439. pub/DSP/ResoLab2.1.tar.Z        Interactive filter instrument; sources now
  1440.                                 included, online help.
  1441. pub/DSP/Spectro.Z               Spectrum analysis tool, with source code.
  1442. pub/DSP/WaveFormEditor.tar.Z    Jean Laroche's real-time waveform editor,
  1443.                                 with DAJ's additions.
  1444.  
  1445. DSP programming examples for the NeXT platform:
  1446.  
  1447. pub/DSP/dsp_dma_stream.tar.Z    Fast DSP DMA programming example (two-way DMA).
  1448. pub/DSP/JeanLaroche.tar.Z       Low-level sound and DSP programming examples
  1449.                                 and docs.
  1450.  
  1451. [bil@ccrma.Stanford.EDU]
  1452.  
  1453. =======================================================================
  1454.  
  1455. Q3.3: Software for Texas Instruments DSPs.
  1456.  
  1457. =======================================================================
  1458.  
  1459. Q3.3.1: Where can I get free algorithms or libraries for TI DSPs?
  1460.         What is the number for the TI DSP BBS?
  1461.  
  1462. nic.funet.fi has some old, apparently public domain, assembler and
  1463. related tools from TI for the TMS320 family.  [Antti-Pekka Virtanen,
  1464. antsu@utu.fu]
  1465.  
  1466. The TI DSP bulletin board is at (713) 274-2323 (300, 1200, 2400, or 9600 bps;
  1467. 8 data, 1 stop, no parity).
  1468.  
  1469. evans.ee.adfa.oz.au has a mirror of the TI DSP bulletin board in
  1470. "mirrors/tibbs".  See the "00README" file at the top of the
  1471. directory tree for info.  Please restrict FTP session to outside of
  1472. 8 am to 6 pm local time (10 pm to 8 am GMT).
  1473. This is mirrored from ti.com, in /tms320bbs. The TI site is
  1474. the official one, but has no user contributed software.
  1475. [Brad Hards, hards4@ee.adfa.oz.au]
  1476.  
  1477. { If anyone knows of any other sources for TI DSP software, please let
  1478. us know at comp-dsp-faq@ohm.Berkeley.EDU.  Thanks! }
  1479.  
  1480. =======================================================================
  1481.  
  1482. Q3.3.2: Where can I get a free C compiler for the TI TMS320C30?
  1483.  
  1484. Sonitech (see vendors list) has a gcc based TMS320C30 C compiler
  1485. that was originally done Computer Motion.  Sonitech sells it
  1486. for $995, but under the terms of the Gnu Public License, other
  1487. people can then give it away.  While we haven't heard of any
  1488. ftp sites yet, there are bound to be some soon.
  1489.  
  1490. =======================================================================
  1491.  
  1492. Q3.3.3: Where can I get a free assembler for the TI TMS320C30?
  1493.  
  1494. Ted Rossin has written an assembler and linker for the TMS320C30.  In
  1495. his words, "It is somewhat limited by the fact that it can't handle
  1496. expressions but it has worked fine for me over the past few years.
  1497. There is no manual because it is a clone of the TI assembler and
  1498. linker.  However the linker command files use a different (easier to
  1499. use) syntax.  It runs on HP-UX workstations, Macs, IBM clones and
  1500. believe it or not the Atari-ST (because I developed the code on it)."
  1501.  
  1502. It is available for anonymous ftp from schutz.ee.uts.edu in
  1503. ~/pub/DSP/c30/as30.tar.Z".
  1504.  
  1505. [Ted Rossin, rossin@fc.hp.com]
  1506.  
  1507. =======================================================================
  1508.  
  1509. Q3.4: Software for Analog Devices DSPs.
  1510.  
  1511. =======================================================================
  1512.  
  1513. Q3.4.1: Where can I get algorithms or libraries for Analog Devices DSPs?
  1514.         What is the number for the Analog Devices DSP BBS?
  1515.  
  1516. The number for the Analog Devices DSP BBS is (617) 461-4258 (300, 1200,
  1517. 2400, 9600, 14400 bps), 8N1.
  1518.  
  1519. [Analog Devices DSP Applications, dsp_applications@analog.com]
  1520.  
  1521. { If anyone knows of other sources for Analog Devices DSP software,
  1522. please let us know at comp-dsp-faq@ohm.Berkeley.EDU.  Thanks! }
  1523.  
  1524. =======================================================================
  1525.  
  1526. Questions, comments, or submissions for this FAQ should be mailed to
  1527. comp-dsp-faq@ohm.Berkeley.EDU, ...!ucbvax!ohm!comp-dsp-faq.  Thanks!
  1528.  
  1529.  
  1530.  
  1531.